#ifndef COURSE_H
#define COURSE_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 课程数据结构
typedef struct Course
{
    char id[20];
    char name[50];
    int credits;         // 课程学分
    char properties[50]; // 课程性质
    int selected_num;    // 已选人数
    int max_students;    // 人数上限
    struct Course *next;
} Course;

// 函数原型
void add_course(Course **head, const char *id, const char *name, int credits, const char *properties, int selected_num, int max_students);
void delete_course(Course **head, const char *id);
void update_course(Course **head, const char *id);
void view_course(const Course *head, const char *id);
Course *get_course(Course **head, const char *id);
const Course *get_const_course(const Course *head, const char *id);
void list_courses(const Course *head);
void load_courses_from_file(Course **head, const char *filename);
void save_courses_to_file(const Course *head, const char *filename);
void log_action(const char *action, const char *details);//日志函数

#endif
